package request

// 取消订单及原因
type CancelOrder struct {
	OrderId         uint32  `form:"order_id" binding:"required" json:"order_id"`
	Reason          string  `form:"reason" binding:"required" json:"reason"`
	Liability       int64   `form:"liability" binding:"required" json:"liability"`
	CancellationFee float32 `form:"cancellation_fee" binding:"required" json:"cancellation_fee"`
}

// 获取id
type GetId struct {
	Id int64 `form:"id" binding:"required" json:"id"`
}

// 接收位置经纬度参数
type ReceiveLocationReq struct {
	Latitude  float32 `form:"latitude" binding:"required" json:"latitude,omitempty"`
	Longitude float32 `form:"longitude" binding:"required" json:"longitude,omitempty"`
	OrderId   int64   `form:"order_id" binding:"required" json:"order_id,omitempty"`
	Point     int64   `form:"point" binding:"required" json:"point,omitempty"`
}

type CancelOrderStatusList struct {
	Page     int32  `json:"page" form:"page"`
	PageSize int32  `json:"pageSize" form:"pageSize"`
	Status   uint64 `json:"status" form:"status"`
}

// 更新订单状态参数
type UpdateOrderStatusReq struct {
	OrderId   uint32  `form:"order_id" binding:"required" json:"order_id,omitempty"`
	Status    int64   `form:"status" binding:"required" json:"status,omitempty"`
	Latitude  float32 `form:"latitude" binding:"required" json:"latitude,omitempty"`
	Longitude float32 `form:"longitude" binding:"required" json:"longitude,omitempty"`
	Mobile    string  `form:"mobile" binding:"required" json:"mobile,omitempty"`
}
type OrderCancellationDel struct {
	Id     uint64 `form:"id" binding:"required" json:"id,omitempty"`
	UserId uint64 `form:"user_id" binding:"required" json:"user_id,omitempty"`
}
type OrderCancellationDetail struct {
	Id     uint64 `form:"id" binding:"required" json:"id,omitempty"`
	UserId uint64 `form:"user_id" binding:"required" json:"user_id,omitempty"`
}
type OrderCancellationList struct {
	UserId   uint64 `form:"user_id" binding:"required" json:"user_id,omitempty"`
	Page     int32  `form:"page" binding:"required" json:"page,omitempty"`
	PageSize int32  `form:"page_size" binding:"required" json:"page_size,omitempty"`
}

type ReassignCreate struct {
	OrderId      uint64 `json:"orderId" form:"orderId"`
	UserId       uint64 `json:"userId" form:"userId"`
	AssignDriver uint64 `json:"assignDriver" form:"assignDriver"`
	Reason       string `json:"reason" form:"reason"`
}
type CreateOrderReq struct {
	StartLoc         string `json:"startLoc" binding:"required" form:"startLoc"`
	EndLoc           string `json:"endLoc" binding:"required" form:"endLoc"`
	CarTypeId        int64  `json:"carTypeId" binding:"required" form:"carTypeId"`
	OrderType        int64  `json:"orderType" binding:"required" form:"orderType"`
	ServiceStartTime string `json:"serviceStartTime" form:"serviceStartTime"`
	CityId           int64  `json:"cityId" form:"cityId" binding:"required"`
	Source           string `json:"source" form:"source" binding:"required"`
}
type OrderComment struct {
	OrderId uint64 `json:"orderId" form:"orderId"`
	Comment string `json:"comment" form:"comment"`
}

type OrderDetail struct {
	Id uint64 `json:"id" form:"id"`
}

type OrderTimeDetail struct {
	Id uint64 `json:"id" form:"id"`
}

type PricingInformationAdd struct {
	OrderId         uint64  `json:"orderId" form:"orderId"`
	PricesStarting  float32 `json:"pricesStarting" form:"pricesStarting"`
	MileageFee      float32 `json:"mileageFee" form:"mileageFee"`
	DurationFee     float32 `json:"durationFee" form:"durationFee"`
	LongDistance    float32 `json:"longDistance" form:"longDistance"`
	Bridge          float32 `json:"bridge" form:"bridge"`
	NightServiceFee float32 `json:"nightServiceFee" form:"nightServiceFee"`
	ParkingFee      float32 `json:"parkingFee" form:"parkingFee"`
	Other           float32 `json:"other" form:"other"`
}
type PricingInformationDetail struct {
	Id uint64 `json:"id" form:"id"`
}
type IsCanCelOrderReq struct {
	UserId uint64 `json:"user_id" form:"user_id"`
}

type OrderDriverId struct {
	OrderId  uint64 `json:"orderId" form:"orderId"`
	DriverId uint64 `json:"driverId" form:"driverId"`
}
type OrderCancellationUpdateStatus struct {
	Id     uint64 `json:"id" form:"id"`
	Status uint64 `json:"status" form:"status"`
}

type DoubtUpdateStatus struct {
	Id     uint64 `json:"id" form:"id"`
	Status uint64 `json:"status" form:"status"`
}

type CouponTemplateAdd struct {
	Title       string  `json:"title" form:"title"`
	CouponType  uint64  `json:"coupon_type" form:"coupon_type"`
	Description string  `json:"description" form:"description"`
	Price       float64 `json:"price" form:"price"`
	Discount    uint64  `json:"discount" form:"discount"`
	Limit       uint64  `json:"limit" form:"limit"`
}

type UpdateReassignStatus struct {
	Id     uint64 `json:"id" form:"id"`
	Status uint64 `json:"status" form:"status"`
}

type GetUserIdOrderInfo struct {
}

type UserCouponAdd struct {
	UserId   uint64 `json:"user_id" form:"user_id"`
	CouponId uint64 `json:"coupon_id" form:"coupon_id"`
}

type UserCollectAdd struct {
	CouponId uint64 `json:"coupon_id" form:"coupon_id"`
}

type UserShareCouponsAdd struct {
	SharerId   int64  `json:"sharer_id" form:"sharer_id"`     // 用户id
	CouponId   int64  `json:"coupon_id" form:"coupon_id"`     // 被分享的优惠券id
	ShareToke  string `json:"share_toke" form:"share_toke"`   // 分享唯一凭证链接
	ReceiverId int64  `json:"receiver_id" form:"receiver_id"` // 被分享者用户id
	ExpireTime string `json:"expire_time" form:"expire_time"` // 优惠券过期时间
}

type CouponTemplateList struct {
}

type CouponTemplateSearch struct {
	Title string `json:"title" form:"title"`
}

// 优惠券分享添加
type CouponSharesAdd struct {
	CouponId uint64 `json:"coupon_id" form:"coupon_id"`
	ShareBy  uint64 `json:"share_by" form:"share_by"`
}
